@Decorator
public class PriceDiscountDecorator implements Product {
@Any
@Inject
@Delegate
private Product product;
public String generateLabel() {
product.setPrice(product.getPrice() * 0.5);
product.setLabel(product.getLabel() + " (Discounted)");
return product.generateLabel();
}
// niektre metody pominito
}

/*
<decorators>
<class>com.devchronicles.decorator.PriceDiscountDecorator </class>
</decorators>
*/

/*
@Any
@Inject
Product product;
public void createPriceList(){
System.out.println("Etykieta: " + product.generateLabel());
}
*/